1. Field of the Invention
The present invention relates to a video data sending service, and more particularly to a video data resending method capable of selectively resending video data packet using a CONTRAXPAND™ buffer.
2. Description of the Prior Art
In the international standardization of mobile communication techniques centering around a wideband code division multiplexing access (W-CDMA) technique, a mobile video data communication standard has been proposed recently by a recommendation of the International Telecommunications Union Telecommunications Standard (hereinafter “ITU-T”) on a television transmission line and audio broadcast transmission line.
In such international standards on the mobile video data communication, a video buffering technique is commonly used. The video buffer temporarily stores the compression-coded variable-rate video data for a predetermined time period prior to outputting the data at a rate matching the communication channel. If a communication channel is a variable bit rate type in which data is processed regardless of a variation in the rate of compressed video data, no buffering is required. However, in most wire/wireless digital communications, the communication channels have a constant bit rate. As a result, a video buffering technique capable of controlling the variable-rate video data adaptively to a constant-bit rate communication channel is required.
Also, even in the case where a communication channel is the variable bit rate type, a network is congested upon inputting video data of a rate higher than the maximum variable rate of the communication channel. In order to prevent such a congestion, a video buffering technique which limits the rate of video data or a rate control technique similar thereto is required.
Moreover, according to the international standards on the mobile video data communication, several error control techniques are employed to increase resilience on the generation of a bit error of compression-coded variable-rate video data on a transmission channel. In particular, error control techniques such as resynchronization, data partitioning and reversible variable length coding are applied to a MPEG-4 of the Moving Picture Experts Groups (hereinafter “MPEGs”). These error control techniques provide improvements in picture quality in the order of 2–3 dB.
One last item of international standards on resending of mobile video data is a protocol for enabling the resending of compressed video data. This protocol contains an adaptation layer-3 (hereinafter “AL3”) which is separately defined for the video. The AL3 is a layer for notifying a specific packet address for resending a damaged video packet when a video packet is damaged. Accordingly, a prestored packet corresponding to the specific packet address is resent.
FIG. 1 is a block diagram showing a conventional video data compression apparatus in the related art. This video data compression apparatus is a basic model defined in an international standard on video compression coding, or ITU-T H.263, MPEG-1, MPEG-2 and MPEG-4. As shown in FIG. 1, the video data compression apparatus comprises a discrete cosine transform (hereinafter “DCT”) unit 1 inputting macro block-unit video data before compression, a quantizer 2, an inverse quantizer 3, an inverse discrete cosine transform (hereinafter “IDCT”) 4, and a frame memory 5 for video storage. The video data compression apparatus further comprises a variable length coder (hereinafter “VLC”) 6 converting video data quantized by the quantizer 2 into variable-length data, a video multiplexer 7, and a buffer 8 outputting the compressed video data.
The buffer 8 acts as a single port for input/output of video data. The buffer 8 has an occupancy which is periodically monitored on the basis of an address difference between a read pointer and a write pointer. Also, the buffer 8 notifies a video rate controller 9 coupled with the quantizer 2 of the monitored occupancy. The buffer 8 forms a feedback loop with the video rate controller 9.
The video rate controller 9 judges the occupancy O(k) of the buffer 8 and transfers a proper quantization coefficient Q(k) to the quantizer 2 according to the judged result.
The quantization coefficient Q(k) is a quantization step size of any one of 31 integers from 1 to 31. When the quantization coefficient Q(k) is large, the amount of output data from the quantizer 2 is reduced. If the quantization coefficient Q(k) is small, the amount of output data from the quantizer 2 is increased.
Variable-rate and variable-length video data, compression-coded by the quantizer 2, the VLC 6 and the video multiplexer 7, are serially input to the buffer 8. From the buffer 8, the data is serially output at a constant-rate variable-length video data in the input order.
In real communication systems, a first-in first-out (hereinafter “FIFO”) unit is often used as the buffer 8 which is subjected to a serial input/output control operation where a random access operation is invalid. This FIFO unit has a functional pin usable to indicate an occupancy full or an occupancy empty state. FIGS. 2a and 2b show a conventional video data sending and resending processes.
FIG. 2a is a block diagram illustrating a video data sending process based on the ITU-T H.223 and shows a system multiplexing layer provided to perform the video data sending process. The system multiplexing layer comprises a sender including a AL3 Sending processor 10 and multiplexer 20, and a receiver including a demultiplexer 30 and receiving AL3 processor 40.
The sending AL3 further includes a send buffer Bs 13 resending a packet to be sent and a sending sequence number V(S) 12 of an I-PDU to be sent. The sending sequence number V(S) 12 of the I-PDU is incremented by one whenever the I-PDU is sent. The most recently sent I-PDU is stored in the send buffer Bs 13. The minimum size of the send buffer Bs 13 required by the sending AL3 processor 10 is defined in the ITU-T H.324, and the actual buffer size thereof is transferred to the receiver through an open logical channel based on ITU-T H.245.
An “N(S)” is defined as a sequence number of an I-PDU sent by the sender, which becomes equal to a sequence number “N(R)” of an I-PDU to be received by the receiver. When a sending sequence number N(S) of the subsequent I-PDU to be received is at a standby state and becomes equal to a receiving sequence number N(R), the receiver recognizes that the I-PDU has been sent normally. Whenever the I-PDU is normally received, a receiving sequence number V(R) 42 is incremented by one.
FIG. 2b is a flowchart illustrating a video data resending process based on the ITU-T H.245. The sender may have two reactions in response to a resending request from the receiver. One reaction is to directly pass a requested I-PDU, and the other reaction is to reject the resending request when the resending operation is invalid.
The sending of the requested I-PDU essentially requires a reverse logical channel, which is defined in the ITU-T H.245. The “reverse logical channel” is a dedicated control channel used to control and maintain the configuration of a call. This reverse logical channel manages a call between the sender and the receiver together with a forward logical channel.
These two control channels exchange various characteristic information of the terminals before a call is configured. During communication, the control channels detect a connection state of the call and perform operations corresponding to the detected connection state. Also, upon occurrence of a problem, the control channels indicate and control the problem. Moreover, in the process of sending the requested I-PDU, the control channels send a resending request message SREJ PDU to the sender and wait for a response.
In FIG. 2b, if an AL3 sending entity 50 appends a sequence number V(S) of an I-PDU to be sent and sends the resultant I-PDU, an AL3 receiving entity 60 checks whether a sequence number N(S) of the currently sent I-PDU is equal to a sequence number V(R) of an I-PDU to be received (step S10). If the two sequence numbers are equal, the AL3 receiving entity 60 normally performs an operation for reception of the subsequent I-PDU.
However, in the case where the sequence number N(S) of the sent I-PDU is not equal to the sequence number V(R) of the I-PDU received, the AL3 receiving entity 60 sends a resending request message SREJ PDU to the AL3 sending entity 50 (step S20). Upon receiving the resending request message SREJ PDU from the AL3 receiving entity 60, the AL3 sending entity 50 checks whether the I-PDU of the corresponding sequence number is still present in the send buffer Bs 13 and resends the corresponding I-PDU in accordance with the checked result (step S30).
If the corresponding I-PDU is not present in the send buffer Bs 13, the AL3 sending entity 50 sends a resending disable message DRTX PDU to the AL3 receiving entity 60 (step S40). The AL3 receiving entity 60 stops its timer either at the resending enable state or at the resending disable state and receives the subsequent I-PDU. As a result, the resending operation is terminated.
In the conventional video data sending and resending processes, the normal sending operation must be suspended once the resending operation is advanced. Consequently, the conventional video data sending and resending processes are disadvantageous because if the normal video data sending operation is often suspended for a long time for the video data resending operation, the successive process of the subsequent video data by the sender must also be stopped.
Moreover, the successive sending of the subsequent video data may not be stopped, even if a video data resending request is generated by the receiver. In such case, data overflows to the buffer included in the video data compression apparatus, resulting in a discontinuance in communication for the normal video data sending operation.
Furthermore, in the conventional video data resending process, the previously packeted video data is processed as a basic unit for sending. As a result, when a local damage of a video data packet occurs, rather than only the associated video data portion of the video data packet being resent, all video data portions of the video data packet must be resent. Thus, when the resending operation is required only with respect to a specific position on a picture, the specific position cannot be separately processed.
On the other hand, in a video sending/receiving layer of FIG. 2a, an error is recognized and processed by a video decoder based on the ITU-T H.263 and MPEG. The generation of a bit error may be judged differently according to how the video decoder is designed. In most wire communication environments, a video decoder has no separate error correction means. As a result, if an error is generated, the video decoder has to retrieve a header code GOB or a picture start code indicating the start of a picture for resynchronization. However, because all information cannot be restored up to a bit position for the resynchronization, a distorted picture or the previous picture appears on the screen.
There may be various approaches to the recognition of error generation by the video decoder in restoring the video data. First, in the case of a fixed-length code, an error is recognized when a fixed-length error value is not a predetermined value or the processed result is not a defined value. In such case, it is possible to continuously decode the subsequently sent bit streams.
In the case where an error is generated in a variable-length code, it is impossible to continuously decode the subsequently sent bit streams. When an error occurs and a variable-length error value cannot be retrieved from a defined table or a faulty value is retrieved from the defined table, the processed result is beyond a defined range. As a result, the video decoder abandons all of the subsequent data and turns to an operation of scanning a bit position for the next synchronization.
In this manner, an error generation can readily be recognized because an abnormal variable-length decoding usually appears just after the error generation. However, except for the fixed-length codes for synchronization, such as a header, a significant problem is in the generation of an error in a fixed-length data. This error generation may not immediately be recognized or it may not be recognized at all, resulting in an accumulation in the picture distortion.
Upon recognizing an error, the video decoder generally processes the error by an error concealment, in which video information at the corresponding position is replaced with the surrounding picture information or the same position video information of the previous picture.
In conclusion, when a resending request is sent with respect to an error recognized by the video decoder in FIG. 2a, the request cannot appropriately be accommodated by the system multiplexing layer and video coder. Furthermore, the system multiplexing layer has a disadvantage in that it recognizes and resends data only in a packet unit because it cannot individually recognize video information in the packet. In addition, a buffer coupled with the conventional video coder cannot separately send video data therein.